'''
3、摆放家具
    需求：
    1）.房子有户型，总面积和家具名称列表
       新房子没有任何的家具
    2）.家具有名字和占地面积，其中
       床：占4平米
       衣柜：占2平面
       餐桌：占1.5平米
    3）.将以上三件家具添加到房子中
    4）.打印房子时，要求输出:户型，总面积，剩余面积，家具名称列表
'''
'''
需求分析思路：
定义类：房子类
    属性：总面积    外界     数值
         户型      外界     字符串
         家具名称列表    初始为空列表   
         剩余面积      初始为总面积
    方法：
        摆放家具(参数：家具类的实例对象)
            判断摆放家具占地面积是否小于房子的剩余面积：
                是
                家具列表.append(家具名称）
                房子的剩余面积-=家具面积
                否
                提示房子满了，装不下了
定义类：家具类
    属性：家具面积    数值    外界给予
        家具名字    外界给予     字符串
    方法：str
'''
class Home():
    def __init__(self,zong_area,hu_name):
        self.zong_area=zong_area
        self.hu_name=hu_name
        self.jiajulist=[]
        self.shengyu_area=zong_area

    def baifang(self,jiaju):
        if jiaju.jiaju_area<=self.shengyu_area:
            self.jiajulist.append(jiaju.jiaju_name)
            self.shengyu_area-=jiaju.jiaju_area
        else:
            print("房子满了，装不下了")
    def __str__(self):
        return f"户型：{self.hu_name},总面积：{self.zong_area},剩余面积：{self.shengyu_area},家具列表：{self.jiajulist}"

class JiaJu():
    def __init__(self,name,area):
        self.jiaju_name=name
        self.jiaju_area=area
    def __str__(self):
        return f"{self.jiaju_name}:{self.jiaju_area}平米"


if __name__ == '__main__':
    J=JiaJu("床",10)
    # print(J)
    h=Home(1000,'两居室')
    h.baifang(J)
    T = JiaJu("桌子", 10)
    # print(T)
    h.baifang(T)
    print(h)